1986-BHV-02 S.11-17
CP/M Hardware für TRS 8O, GENIE und Komtek 1H. Bernhardt, C. UeberschaarUm den Betrieb unter CP/M zu ermöglichen, sind folgende Anforderungen an die Hardware zu stellen. Nach dem Booten durch die Level II ROMs müssen die ROMs per Software abgeschaltet und durch RAM ersetzt werden können. Der Zugriff auf Bildwiederholspeicher, Tastatur, FDC und Drucker muß auf den oberen Adreßraum (direkt unter FFFFH) verlegt werden. Der gesamte übrige Adressraum muß als RAM zur Verfügung stehen. Dieses Problem ist re1ativ einfach zu lösen, vorausgesetzt daß die 4116 RAMs auf dem CPU-Board durch 4164 RAMs ersetzt sind und die dafür nötigen Änderungen vorgenommen wurden (wie dies beim GENIE ab Modell 1983 schon der Fall war oder durch Speichererweiterung auf "64K RAM" für ältere Modelle nachrüstbar war). Um diese Erweiterung auch bei TRS 80 machen zu können, ist zusätzlich auf dem CPU-Board die Änderung gemäß Abb. 7 durchzuführen. Bei allen Geräten müssen die eventuell im Expansion Interface vorhandenen 4116 RAMs entfernt werden. Durch Invertieren der Adressen A14 und A15 für die Decoderschaltung kann erreicht werden, daß ROMs und I/O von 0-16K nach 48-64K verlegt werden. Durch Umschalten der ROM-Freigabesignale an die RAM-Freigabe läßt sich dann zusätzlich noch der Adreßbereich C000H bis F7DFH als RAM gewinnen. Diese Aufgabe übernimmt die in Abb. 1 dargestellte Schaltung. Abb. 1: Schaltung des CP/M-BoardsKernstück dieser Schaltung sind zwei aus NAND-Gattern gebildete D Flip Flops, die bei Einschalten (RESET*) oder Drücken der "RESET"-Taste (NMI*) immer so eingestellt werden, daß die ROMs freigegeben werden und zusammen mit dem meomry-mapped I/O im Adressbereich 0-16K* liegen (TRS 80 Modus). Durch Ausgabe einer Portadresse von 50H bis 5FH wird über die Decoderschaltung (IC1, 74LS20, Pin 6) immer das obere Flip Flop umgekippt, so daß die ROMs abgeschaltet werden und in ihren Adreßbereich dann RAM Speicher vorliegt. Wenn gleichzeitig das Datenbit 0 high ist, wird auch das andere Flipp Flop umgekippt und dadurch per Invertieren von A14 und A15 für die Decoderschaltung des CPU-Boards der I/O-Bereich an das obere Speicherende gelegt. In dieser für CP/M nötigen Konfiguration liegt außerdem noch der im TRS 80 nicht verfügbare Adreßbereich zwischen ROM und I/O, der im GENIE als Sonder-ROM genutzt wird, als RAM vor. Um beim TRS 80 diesen Bereich (3000H-37DFH) im TRS 80 Modus auch als RAM nutzen zu können, darf IC10 (74LS32) nicht bestückt werden und stattdessen müssen die Jumper J2 und J3 gelegt werden (IC10 kann beim TRS 80 deswegen entfallen, weil nur zwei ROMs vorhanden sind.) Beim GENIE ist der Bereich 3700H-37DFH (bzw. F700H-F7DFH im CP/M-Modus) wegen der unvollständigen Decodierung der Freigabe der Speicherlesetreiber auf dem CPU-Board nicht verfügbar. Das läßt sich dadurch beheben, daß das Signal 37EXH von Pin 11, IC4 (74LS32) auf dem CP/M-Board an Pin 12 von Z21 (74L20) auf dem CPU-Board angeschlossen wird und die bisher an diesen Pin führende Leitung durchtrennt wird. Durch freie Verdrahtung auf der Lötseite des CP/M-Boards müssen außerdem noch folgende Verbindungen hergestellt werden:
Das dadurch an Pin 11 von IC4 (74LS32) gewonnene Signal 37EX* kann außerdem auch für die Freigabe des 74LS155 Decoders auf dem Expansions Interface benutzt werden, wenn anstelle der beiden Leitungen A14' und A15' nur eine Leitung dorthin geführt werden soll. Der bisherige Anschluß an die Pins 2 und 15 des 74LS155 muß dann natürlich abgetrennt werden. Die invertierten Adreßleitungen A14' und A15' dürfen dann nicht an das Expansion Interface gelegt werden, wenn dort zuätzliche Hardware Erweiterungen angeschlossen werden, die mit den richtigen Signalen von A14 und A15 versorgt werden müssen. Im CP/M Modus sind außerdem noch 3/4 des Adreßbereichs von 1K der Tastatur, der im TRS 80 und GENIE durch unvollständige Decodierung verschenkt wird, als RAM verfügbar. Es sind dies die Speicheradressen F900H-FBFFH. Für den TRS 80 Modus wurde die Möglichkeit gelassen, durch die Juper J4 und J5 entweder im Bereich 3900H-3BFFH RAM zur Verfügung zu haben oder die unvollstãndige Tastatur Decodierung beizubehalten. Es ist nicht auszuschließen, daß Programme die Tastatur auch im Bereich 3900 bis 3BFFH auslesen. Beim Komtek 1 ist die Tastatur bereits voll decodiert. Mit einem Doppelumschalter kann (bei grundsätzlicher Einstellung von Speicher) im Bedarfsfall auf Tastatur von 3800H-3BFFH zurückgeschaltet werden, wenn man sich diese Rückzugsmöglichkeit offen halten möchte. Abb. 2: Freigabesignal des Speicherlesetreibers im GENIE, Änderungen beim Einbau des CPM-BoardsUm beim GENIE diesen Speicherbereich nutzen zu können muß durch AND-Verknüpfung der Signale KB'* des CP/M-Boards und VID*, Pin 3 von Z35 (74LS32) auf dem CPU-Board und Anlegen des dadurch gebildeten Signals an Pin 13 von Z21 (74LS20) auf dem CPU-Board (Abb.2) der Speicherlesetreiber freigegeben werden. Das dafür nötige IC 74LS08 kann auf den freien Platz neben Z25 (74LS139) eingesetzt werden. Im TRS 80-Modus ist durch die getrennte Umschaltung der Flip Flops auch noch die Möglichkeit gegeben die ROMs abzuschalten und durch RAMs zu überblenden. Das läßt sich dazu nutzen, um den ROM-Inhalt durch ein kleines Maschinenprogramm zunächst in den oberen Speicherbereich zu kopieren, dann durch Ausgabe von 00H an eine der Portadressen 50H-5FH von ROM auf RAM umzuschalten und den ROM-Inhalt dann wieder in seinen ursprünglichen Bereich zurückzuschreiben. Der dann unter gleichen Adressen im RAM vorliegende ROM-Inhalt kann dann beliebig geändert werden. Um Schwachstellen der ROM-Treiberroutinen (z.B. Unterdrücken bestimmter Steuercodes für die Druckerausgabe) zu umgehen, können dann diese Routinen direkt gepatched werden und müssen nicht durch zusätzliche Maschinenprogramme im oberen Speicherbereich ersetzt werden.
Das in Abb.3 vorgeschlagene Layout sowie der Bestückungsplan und die externe Beschaltung (Abb.4 und 6) bauen auf eine leicht selbst herzustellende einseitig gedruckte Schaltung mit relativ wenigen Drahtbrücken auf. Der Jumper J1 zwischen IC2 und IC3 ist nur bei Anschluß an den GENIE zu setzen wo anstelle des nicht vorhandenen SYSRES* Signals die Signale RESET* und NMI* herangezogen werden müssen. Funktion der Jumper
Abb. 6: Anschluß an das CPU-Board
Anschluß des CP/M-Boards an das Expansion Interface
#1 bisherige Leitungen abtrennen #2 beide Leitungen abtrennen und miteinander verbinden, ohne daß Pin 38 mit daran liegt #3 die bei der Erweiterung auf 64K mit 4164 ICs gelegte Verbindung muß wieder entfernt werden #4 die Nummerierung der ICs des CPU-Boards erfolgt gemȧß dem Bestückungsplan aus; Info des TRS 80 / GENIE User Club, Hardware Sonderheft; 'Wie aus dem Komtek 1 ein Computer wird Herleitung eines richtigen Freigabesignals für GENIE und Komtek 1 Das zur RAM-Freigabe beim Umrüsten auf 64K RAM auf dem CPU-Board in den mitgelieferten Anleitungen vorgeschlagene invertierte Signal 0-16K kann bei bestimmten I/0-Befehlen eventuell Schwierigeiten machen. Deshalb sei hier eine Möglicheit beschrieben, wie mit nicht benutzten Gattern auf dem CPM-Board dieser Fehler behoben werden kann. 1) GENIE
|